home *** CD-ROM | disk | FTP | other *** search
/ AMIGA-CD 2 / Amiga-CD - Volume 2.iso / ungepackte_daten / 1994 / 5 / 02 / tips & tricks / joy.s < prev    next >
Encoding:
Text File  |  1995-06-01  |  1.2 KB  |  39 lines

  1. ;                              Markus Horn
  2.  
  3. ;Diese Joystickfunktion benutzt Shift und addx-Befehle um
  4. ;die richtungsspezifischen Bits auszufiltern.
  5.  
  6. ;möchte man einen Joystick in Port1 abfragen, schreibt man
  7. ;anstelle von         btst    #7,$bfe001
  8. ;            btst    #6,$bfe001
  9. ;und anstelle von    move.w    $dff00c,d0
  10. ;            move.w    $dff00a,d0
  11.  
  12. ;D1 enthält das Ergebnis der Joystickauswertung.
  13.  
  14. ;    Bit0    -    Joystick oben
  15. ;    Bit1    -    Joystick unten
  16. ;    Bit2    -    Joystick links
  17. ;    Bit3    -    Joystick rechts
  18. ;    Bit4    -    Joystick Feuerknopf gedrückt
  19.  
  20. testjoy2:
  21.     moveq    #0,d1        ;d1 - Joyergebnis löschen
  22.     btst    #7,$bfe001    ;teste Feuerknopf Joystick2
  23.     bne.s    rechts        ;nicht gedrückt weiter
  24.     addq.w    #1,d1        ;feuerknopf - Bit4 in d1 setzen
  25. rechts:    move.w    $dff00c,d0    ;Joystickstatus -> d0
  26.     move.w    d0,d2        ;und ->d2
  27.     lsr.w    #1,d0        ;d0 ein Bit nach rechts schieben
  28.     eor.w    d0,d2        ;und mit d2 verknüpfen
  29.     lsr.w    #1,d0        ;rechtsrelevantes Bit schieben und
  30.     addx.w    d1,d1        ;über xFlag - Bit3 in D1 setzen
  31.     add.b    d0,d0        ;linksrelevantes Bit schieben und
  32.     addx.w    d1,d1        ;über xFlag - Bit2 in D1 setzen
  33.     lsr.w    #1,d2        ;untenrelevantes Bit schieben und
  34.     addx.w    d1,d1        ;über xFlag - Bit1 in D1 setzen
  35.     add.b    d2,d2        ;obenrelevantes Bit schieben und
  36.     addx.w    d1,d1        ;über xFlag - Bit0 in D1 setzen
  37.     rts            ;Rücksprung
  38.  
  39.